package com.weixing.mall.provider.model.query;

import com.weixing.mall.base.constant.DatePattern;
import com.weixing.mall.base.enums.WhetherEnum;
import com.weixing.mall.core.enums.OrderAppTagEnum;
import com.weixing.mall.core.enums.OrderSysTagEnum;
import com.weixing.mall.provider.api.model.enums.OrderTypeEnum;
import com.weixing.mall.provider.model.enums.*;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.List;

/**
 * OrderPCQuery
 *
 * @author  wx
 * @date  2019/9/27 15:34
 * @since  1.0
 */
@Data
public class OrderPCQuery {
    /**
     * 所属发货员
     */
    private Integer shipperId;
    /**
     * 所属客服
     */
    private Integer customerId;
    /**
     * 订单状态
     */
    private OrderStateEnum orderStatus;
    /**
     * 订单类型
     */
    private OrderTypeEnum orderType;

    /**
     * 订单来源
     */
    private OrderFromEnum orderFrom;
    /**
     * 所属代理商
     */
    private Integer agentId;
    /**
     * 所属经销商
     */
    private Integer distributorId;
    /**
     * 下单人
     */
    private String buyer;
    /**
     * 手机号
     */
    private String mobile;
    /**
     * 客户名称
     */
    private String contactUser;
    /**
     * 订单编号
     */
    private String orderSn;
    /**
     * 货号
     */
    private String goodsSn;
    /**
     * 款号
     */
    private String styleNo;
    /**
     * 开始日期
     */
    @DateTimeFormat(pattern= DatePattern.NORM_DATETIME_PATTERN)
    private String startTime;
    /**
     * 结束日期
     */
    @DateTimeFormat(pattern= DatePattern.NORM_DATETIME_PATTERN)
    private String endTime;
    /**
     * 审核开始日期
     */
    @DateTimeFormat(pattern= DatePattern.NORM_DATETIME_PATTERN)
    private String auditStartTime;
    /**
     * 审核结束日期
     */
    @DateTimeFormat(pattern= DatePattern.NORM_DATETIME_PATTERN)
    private String auditEndTime;
    /**
     * 发货开始日期
     */
    @DateTimeFormat(pattern= DatePattern.NORM_DATETIME_PATTERN)
    private String shipStartTime;
    /**
     * 发货结束日期
     */
    @DateTimeFormat(pattern= DatePattern.NORM_DATETIME_PATTERN)
    private String shipEndTime;
    /**
     * 活动Id
     */
    private Long actId;
    /**
     * 商品所属仓库
     */
    private Long depotId;

    /**
     * 订单所属仓库 1、发货仓 2、APP仓
     */
    private SealTypeEnum sealType;

    /**
     * 订单来源
     */
    private OrderFromEnum orderForm;
    /**
     * 仓库id
     */
    private  Long  orderDepotId;
    /**
     * 是否查询问题订单
     */
    private WhetherEnum isProblem;

    /**
     * 状态集合---后端定义
     * @ignore
     */
    private List<Integer> status;

    /**
     * 支付流水号
     */
    private String outTradeNo;

    /**
     * 活动名称
     */
    private String actName;

    /**
     * 是否生成订单商品识别码  这里用数字代替  1  是   2  否
     */
    private Integer isCreatedCode;

    /**
     * 是否推送商品码  这里用数字代替  1  是   2  否
     */
    private Integer isGoodsSnPrint;

    /**
     * 订单货品状态
     */
    private ProductStatusEnum itemStatus;

    /**
     * 列表排序(当前排序值 1 按手机号排序 2 按下单时间排序,默认为按照审核时间排序)
     */
    private Integer orderValue;

    /**
     * 订单后台标签状态
     */
    private OrderSysTagEnum sysTag;

    /**
     * 订单代理端标签状态
     */
    private OrderAppTagEnum appTag;

    /**
     * 订单匹配结果规则  精准  或 模糊
     */
    private SealMatchRuleEnum mateRule;

    private  Long  outDepotId;

    /**
     * 是否换货    1  是   0 不是
     */
    private Integer afterSaleTag;
}
